package com.frank.oj.service.oj;

import com.frank.oj.common.result.CommonResult;
import com.frank.oj.model.dto.ApplyResetPasswordDTO;
import com.frank.oj.model.dto.LoginDTO;
import com.frank.oj.model.dto.RegisterDTO;
import com.frank.oj.model.dto.ResetPasswordDTO;
import com.frank.oj.model.vo.RegisterCodeVO;
import com.frank.oj.model.vo.UserInfoVO;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author frank
 * @Date 2024/1/25
 */
public interface UserPassportService {
    CommonResult<Void> logout();

    CommonResult<UserInfoVO> login(LoginDTO loginDTO, HttpServletRequest request, HttpServletResponse response);

    CommonResult<Void> register(RegisterDTO registerDTO);

    CommonResult<RegisterCodeVO> getRegisterCode(String email);

    CommonResult<Void> applyResetPassword(ApplyResetPasswordDTO applyResetPasswordDto);

    CommonResult<Void> resetPassword(ResetPasswordDTO resetPasswordDto);
}
